package ufc.web.funcoes;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.*;

import ufc.web.conexaoBD.ConnectionFactory;
import ufc.web.objetos.Livros;


public class CadLivros implements Acao {

	
	@SuppressWarnings({ "deprecation", "rawtypes" })
	public void executa(HttpServletRequest request, HttpServletResponse response) {
		String sql = "insert into fasthot.livro(titulo,autor,ISBN,valor,genero,imagem) values(?,?,?,?,?,?)";
		Livros livro = new Livros(); 
System.out.println("show");
		if (FileUpload.isMultipartContent(request)) {
			DiskFileUpload fu = new DiskFileUpload();
			double valor= 0;
			fu.setSizeMax(80000);
			byte[] imagem = null;
			
			try {

				
				List itens = fu.parseRequest(request);
				Iterator i = itens.iterator();
				FileItem fi;

				while (i.hasNext()) {
					fi = (FileItem) i.next();
					if (fi.getFieldName().equals("titulo")) {
						livro.setTitulo(fi.getString());
					}if (fi.getFieldName().equals("isbn")) {
						livro.setISBN(fi.getString());
					}if (fi.getFieldName().equals("autor")) {
						livro.setAutor(fi.getString());
					}
					if (fi.getFieldName().equals("genero")) {
						livro.setGenero(fi.getString());
					}
					if (fi.getFieldName().equals("valor")) {
						valor = Double.parseDouble(fi.getString());
						livro.setValor(valor);
					}
					if (fi.getFieldName().equals("imagem")) {
						System.out.println("aqui");
						int size = (int) fi.getSize();
						imagem = new byte[size];
						InputStream upload = fi.getInputStream();
						upload.read(imagem, 0, size);
						
					}
				}

				try {
					Connection con = ConnectionFactory.getConnection();
					PreparedStatement ps = con.prepareStatement(sql);
					ps.setString(1, livro.getTitulo());
					ps.setString(2, livro.getAutor());
					ps.setString(3, livro.getISBN());
					ps.setDouble(4,livro.getValor());
					ps.setString(5, livro.getGenero());
					ps.setBytes(6, imagem);

					ps.execute();

					ps.close();
					con.close();
					System.out.println("aqui");

				} catch (SQLException e) {

					e.printStackTrace();

				}
				try {
					response.sendRedirect("Administrador.jsp?user=5&&resultado=null.jsp");
				} catch (Exception e) {

				}
			} catch (FileUploadException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}

		}
	}
}
